// 引入mongodb
// const MongoClient = require("mongodb").MongoClient;
const { MongoClient } = require("mongodb");

// 定义数据库连接的地址
// const url = "mongodb://127.0.0.1:27017";
const url = "mongodb://admin:admin123@127.0.0.1:27017";
// const url = "mongodb://eggadmin:admin123@127.0.0.1:27017/eggcms";


// 定义要操作的数据库
const dbName = "itying";
// const dbName = "eggcms";

// 实例化 MongoClient 传入数据库连接地址
const client = new MongoClient(url, { useUnifiedTopology: true });

// 连接数据库
client.connect((err) => {
  if(err) {
    console.log(`err`, err);
    return;
  }
  console.log(`数据库连接成功`);

  let db = client.db(dbName);

  // 1. 查找数据
  /* db.collection("user").find({age: 20}).toArray((err, data) => {
    console.log(`data`, data);

    // 操作数据库完毕以后一定要关闭数据库
    client.close();
  }) */

  // 2. 增加数据
  /* db.collection("user").insertOne({ name: "nodejs操作mongodb", age: 10 }, (err, result) => {
    // 增加失败
    if(err) {
      console.log(`err`, err);
      return;
    }
    console.log("增加成功");
    console.log(`result`, result);

    // 操作数据库完毕以后一定要关闭数据库
    client.close();
  }) */

  // 3. 修改数据
  /* db.collection("user").updateOne({ age: 10 }, { $set: { age: 30 }}, (err, result) => {
    // 增加失败
    if(err) {
      console.log(`err`, err);
      return;
    }
    console.log("修改成功");
    console.log(`result`, result);

    // 操作数据库完毕以后一定要关闭数据库
    client.close();
  }) */

  // 4. 删除一条数据
  /* db.collection("user").deleteOne({age: 10},(err, result) =>{
    // 增加失败
    if(err) {
      console.log(`err`, err);
      return;
    }
    console.log("删除一条数据成功");
    console.log(`result`, result);

    // 操作数据库完毕以后一定要关闭数据库
    client.close();
  }) */

  //5、删除多条数据
  db.collection("user").deleteMany({ "name": "nodejs" }, (err)=> {
      if (err) {
          console.log(err);
          return;
      }
      console.log("删除多条数据成功");
      client.close();
  })

})